// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
import type { NextApiRequest, NextApiResponse } from 'next';
import { BeError, BeSuccess, ResponseDataType } from '@/utils/response';
import log from '@/utils/log';
import milestoneHandler from '@/services/tapd/milestone';
import getConfig from 'next/config';

export default async function handler(req: NextApiRequest, res: NextApiResponse<ResponseDataType>) {
  const { event } = req.body;
  if (!event) {
    log.error('输入参数为空');
    res.status(200).json(BeError('输入参数为空'));
    return;
  }
  try {
    await milestoneHandler(event);
    res.status(200).json(BeSuccess());
  } catch (error: any) {
    log.error('tapd需求：', JSON.stringify(event));
    const { publicRuntimeConfig }: { publicRuntimeConfig: EnvParamsType } = getConfig();
    log.error('当前环境配置：', JSON.stringify(publicRuntimeConfig));
    log.error(error);
    // 请求状态如果不是200，tapd会提示接口异常，并且给自动化创建人发邮件通知。
    // 目前接口查询为空，会抛出异常，所以把请求状态为200，内容显示错误消息。
    res.status(200).json(BeError(error.message));
  }
}
